home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / amigaos4_only / asyncio / asyncio / autoinit_asyncio_main.c < prev   
C/C++ Source or Header  |  2004-08-03  |  1KB  |  54 lines

  1. /*
  2. **    $Id$
  3. **    Generated by IDLTool 50.8
  4. **    Do not edit
  5. **
  6. **    AutoInit stub for asyncio
  7. **
  8. **    (C) Copyright 2003 Amiga, Inc.
  9. **        All Rights Reserved
  10. */
  11.  
  12. #include <libraries/asyncio.h>
  13.  
  14. #include <interfaces/asyncio.h>
  15. #include <proto/exec.h>
  16. #include <assert.h>
  17.  
  18. __attribute__((weak)) struct AsyncIOIFace * IAsyncIO = NULL;
  19. /****************************************************************************/
  20.  
  21. extern struct AsyncIOBase * AsyncIOBase;
  22.  
  23. void __init_asyncio_main(void) __attribute__((constructor));
  24. void __exit_asyncio_main(void) __attribute__((destructor));
  25.  
  26. /****************************************************************************/
  27.  
  28. void __init_asyncio_main(void)
  29. {
  30.     struct AsyncIOBase * LibBase;
  31.     if (AsyncIOBase == NULL) /* Library base is NULL, we need to open it */
  32.     {
  33.         LibBase = IExec->OpenLibrary("asyncio.library", 0L);
  34.         assert(LibBase != NULL);
  35.     }
  36.     else
  37.     {
  38.         LibBase = AsyncIOBase;
  39.     }
  40.  
  41.     IAsyncIO = (struct AsyncIOIFace *)IExec->GetInterface((struct Library *)LibBase, "main", 1, NULL);
  42.     assert(IAsyncIO != NULL);
  43. }
  44.  
  45. /****************************************************************************/
  46.  
  47. void __exit_asyncio_main(void)
  48. {
  49.     if (IAsyncIO) IExec->DropInterface ((struct Interface *)IAsyncIO);
  50. }
  51.  
  52. /****************************************************************************/
  53.  
  54.